/*******************************************************************************************
 *  Accel.h
 *
 *  Creating and managing Accel object structures.
 *
 *******************************************************************************************/







/*******************************************************************************************
 *  INCLUDES :
 *******************************************************************************************/
#include "BulletMLConsts.h"
#include "BulletMLTypes.h"
#include "Horizontal.h"
#include "Vertical.h"







/*******************************************************************************************
 *  TYPE definitions :
 *******************************************************************************************/

/* The ACCEL object strucuture definition : */
#ifndef _ACCEL_STRUCT_
#define _ACCEL_STRUCT_
typedef struct {

	ObjType		otype;						/* The object's type, as in the ...     */
											/* ... BulletML type enum.              */

	char		*term;						/* The number of frames the change ...  */
											/* ... will take.                       */

	Vertical	*vertical;					/* The final vertical acceleration.     */
	Horizontal	*horizontal;				/* The final horizontal acceleration.   */

} Accel;
#endif







/*******************************************************************************************
 *  Function PROTOTYPES :
 *******************************************************************************************/

/* CONSTRUCTOR and DESTRUCTOR : */
Accel	*newAccel(void);			/* Creates an empty Accel object strucutre. */
void 	freeAccel(Accel *a);		/* Destroys an Accel object structure.      */ 


/* FILLING the Accel object structure : */
void 	setAccelTerm(Accel *a, char *t);
void 	setAccelHorizontal(Accel *a, Horizontal *h);
void 	setAccelVertical(Accel *a, Vertical *v);
